import File from './File';
import Context from '../Context';
import fs = require('fs');
import mzfs = require('mz/fs');
import { joinPath, appendExt } from '../Utils';
import path = require('path');
import VFile = require('vinyl');
import Loader from '../loaders/Loader';

export default abstract class BaseSourceFile extends File {

    constructor(cx: Context, op: CreateFileOptions) {
        super(cx, op);
    }

    public async doLoad() {
        this.loadContents();
        await (this.loader || this.cx.defaultLoader).load(this);
    }
}
